/*
 * Utiles_Cadena.java
 *
 * Created on 14 de julio de 2007, 03:28 AM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package administracion.helper;
/**
 *
 * @author Frank
 */
public class Utiles_Cadena {
    
    /** Creates a new instance of Utiles_Cadena */
    public Utiles_Cadena() {
    }
    
    public static String completaCeros( String cad, int n ){
        
        int tam = cad.length();
        while( tam < n ){
            cad = "0" + cad;
            tam++;
        }
        return cad;
    }
    
    public static String completaCerosFinal( String cad, int n ){
        
        int tam = cad.length();
        while( tam < n ){
            cad = cad + "0";
            tam++;
        }
        return cad;
    }
    
    public static String completaEspaciosInicio( String cad, int n ){
        
        int tam = cad.length();
        while( tam < n ){
            cad = " " + cad;
            tam++;
        }
        return cad;
    }
     
    public static boolean noEsDigito( String cad ){
        for( int i = 0; i < cad.length(); i++ ){
            if ( !Character.isDigit( cad.charAt( i ) ) ){
                return true;
            }
        }
        return false;
    }
    
    //Este m�todo se hizo para formatear un numero para la exportaci�n de dlas planillas electr�nicas
    public static String formatearNumero( String num ){
        String cad = null;
        String cad2 = null;        
        int pos = num.indexOf(".");
        int pos2 = num.indexOf("@");
        if( pos2 != -1 ){
            return null;
        }
        if( pos != -1 ){
            cad = num.substring( 0, pos );
            cad2 = num.substring( pos + 1, num.length() );
        }else{            
            return null;    //Me indica que no es un numero por lo que debo 
        }        
        cad2 = completaCerosFinal( cad2.trim(), 2 );
        if( noEsDigito( cad + cad2 ) ){ 
            return null;                     
        }
        return cad + cad2;
        
    }

     public static String convierteNumALiteral(String num,String moneda){
        String[] arreglo_unidad ={"","uno-un","dos","tres","cuatro","cinco","seis","siete","ocho","nueve"};
	String[] arreglo_decena ={"","diez","veinte-veinti","treinta","cuarenta","cincuenta","sesenta","setenta","ochenta","noventa"};
	String[] arreglo_centena ={"","ciento-cien","doscientos","trescientos","cuatrocientos","quinientos","seicientos","setecientos","ochocientos","novecientos"};
	String[] arreglo_especiales={"once","doce","trece","catorce","quince","dieciseis","diecisiete","dieciocho","diecinueve"};

	String cadena=""+num;
	String entero=cadena.substring(0, cadena.indexOf("."));
        String entero1=cadena.substring(cadena.indexOf(".")+1,cadena.length());
	String cadena_final="";

	int nivel=entero.length();
	for(int i=0;i < entero.length(); i++){
		if(nivel > 3){
			switch((nivel-3)){
				case 1:{
					String cadena_unidad="";
					if(entero.charAt(i)=='1'){
                                                String unidades = arreglo_unidad[Integer.parseInt(String.valueOf(entero.charAt(i)))];
						cadena_unidad=unidades.substring(unidades.indexOf("-")+1, unidades.length());
					}
					else
						cadena_unidad=arreglo_unidad[Integer.parseInt(String.valueOf(entero.charAt(i)))];
					if(cadena_final.length()>0 && cadena_unidad.length()!=0){
							cadena_final+="y "+cadena_unidad;
					}
					else
						cadena_final+=cadena_unidad;
					cadena_final+=" mil ";
					break;
				}
				case 2:{

					if((entero.charAt(i))=='1'){
						if(entero.charAt(i+1)!='0'){
							cadena_final+=arreglo_especiales[Integer.parseInt(String.valueOf(entero.charAt(i+1)))]+ " mil";
							i++;
							nivel--;
						}
						else
							cadena_final+=arreglo_decena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
					}else if((entero.charAt(i))=='2'){
                                                String decenas = arreglo_decena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
						String cadena_decena=decenas.substring(decenas.indexOf("-")+1, decenas.length());
                                                String cadena_decena1=decenas.substring(0, decenas.indexOf("-"));
						if(entero.charAt(i+1)!='0'){
							String unidad_veinti="";
							if((entero.charAt(i+1))=='1'){
								String unidades = arreglo_unidad[Integer.parseInt(String.valueOf(entero.charAt(i)))];
                                                                unidad_veinti=unidades.substring(unidades.indexOf("-")+1, unidades.length()-1);
							}
							else
								unidad_veinti=arreglo_unidad[Integer.parseInt(String.valueOf(entero.charAt(i+1)))];

							cadena_final+=cadena_decena+unidad_veinti+" mil";
							i++;
							nivel--;
						}
						else{
							cadena_final+=cadena_decena1;
						}
					}
					else
						cadena_final+=arreglo_decena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
					cadena_final+=" ";
					break;
				}
				case 3:{

					String cadena_centena="";
					if((entero.charAt(i))=='1'){
						 String centenas = arreglo_centena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
                                                 cadena_centena=centenas.substring(centenas.indexOf("-")+1, centenas.length());
						if((entero.charAt(i+1))=='0' && (entero.charAt(i+2))=='0'){
							cadena_final+=cadena_centena+ " mil";
							i+=2;
							nivel-=2;
						}
						else
							cadena_final+=cadena_centena;
					}
					else{
						if((entero.charAt(i+1))=='0' && (entero.charAt(i+2))=='0'){
							cadena_final+=arreglo_centena[Integer.parseInt(String.valueOf(entero.charAt(i)))]+ " mil";
							i+=2;
							nivel-=2;
						}
						else
							cadena_final+=arreglo_centena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
					}

					cadena_final+=" ";
					break;
				}
			}
		}
		else{

			switch(nivel){
				case 1:{
					String cadena_unidad="";
                                        String cadena_unidad1="";
					if((entero.charAt(i))=='1'){
						 String unidades = arreglo_unidad[Integer.parseInt(String.valueOf(entero.charAt(i)))];
						 String cadena_unidad2=unidades.substring(unidades.indexOf("-")+1, unidades.length());
                                                 cadena_unidad1=unidades.substring(0, unidades.indexOf("-"));
						if(cadena_final.length()>0){
							cadena_unidad=cadena_unidad1;
						}
						else
							cadena_unidad=cadena_unidad2;

					}
					else
						cadena_unidad=arreglo_unidad[Integer.parseInt(String.valueOf(entero.charAt(i)))];
					if(cadena_final.length()>0 && cadena_unidad.length()!=0){
							cadena_final+="y "+cadena_unidad;
					}
					else
						cadena_final+=cadena_unidad;
					cadena_final+=" ";
					break;
				}
				case 2:{
					if((entero.charAt(i))=='1'){
						if((entero.charAt(i+1))!='0'){

							cadena_final+=arreglo_especiales[Integer.parseInt(String.valueOf(entero.charAt(i+1)))];
							i=entero.length();
						}
						else
							cadena_final+=arreglo_decena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
					}else if((entero.charAt(i))=='2'){
						 String decenas = arreglo_decena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
						String cadena_decena=decenas.substring(decenas.indexOf("-")+1, decenas.length());
                                                String cadena_decena1=decenas.substring(0, decenas.indexOf("-"));
						if((entero.charAt(i+1))!='0'){
							String unidad_veinti="";
							if((entero.charAt(i+1))=='1'){
								 String unidades = arreglo_unidad[Integer.parseInt(String.valueOf(entero.charAt(i)))];
                                                                 String cadena_unidad=unidades.substring(0,unidades.indexOf("-"));
								unidad_veinti=cadena_unidad;
							}
							else
								unidad_veinti=arreglo_unidad[Integer.parseInt(String.valueOf(entero.charAt(i+1)))];

							cadena_final+=cadena_decena+unidad_veinti;
							i=entero.length();
						}
						else{
							cadena_final+=cadena_decena1;
						}

					}
					else
						cadena_final+=arreglo_decena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
					cadena_final+=" ";
					break;
				}
				case 3:{
					String cadena_centena="";
					if((entero.charAt(i))=='1'){
						String centenas = arreglo_centena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
                                                 cadena_centena=centenas.substring(centenas.indexOf("-")+1, centenas.length());
                                                 String cadena_centena1=centenas.substring(0, centenas.indexOf("-"));
						if((entero.charAt(i+1))=='0' && (entero.charAt(i+2))=='0'){

							cadena_final+=cadena_centena;
							i=entero.length();
						}
						else

							cadena_final+=cadena_centena1;
					}
					else{
						if((entero.charAt(i+1))=='0' && (entero.charAt(i+2))=='0'){

							cadena_final+=arreglo_centena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
							i=entero.length();
						}
						else

							cadena_final+=arreglo_centena[Integer.parseInt(String.valueOf(entero.charAt(i)))];
					}

					cadena_final+=" ";
					break;
				}
			}
		}
		nivel--;
	}
	return(cadena_final+ "y " +entero1+"/100 " + moneda);
}
     public static String getMesAnio(String i){
         String mes="";
         if(i.compareTo("1")==0)
             mes="ENERO";
          if(i.compareTo("2")==0)
             mes="FEBRERO";
          if(i.compareTo("3")==0)
             mes="MARZO";
          if(i.compareTo("4")==0)
             mes="ABRIL";
          if(i.compareTo("5")==0)
             mes="MAYO";
          if(i.compareTo("6")==0)
             mes="JUNIO";
          if(i.compareTo("7")==0)
             mes="JULIO";
          if(i.compareTo("8")==0)
             mes="AGOSTO";
          if(i.compareTo("9")==0)
             mes="SETIEMBRE";
          if(i.compareTo("10")==0)
             mes="OCTUBRE";
          if(i.compareTo("11")==0)
             mes="NOVIEMBRE";
          if(i.compareTo("12")==0)
             mes="DICIEMBRE";
         return mes;

     }
       public static int getMesAnioT(String i){
         int mes=0;
         if(i.compareTo("ENERO")==0)
             mes=1;
          if(i.compareTo("FEBRERO")==0)
             mes=2;
          if(i.compareTo("MARZO")==0)
             mes=3;
          if(i.compareTo("ABRIL")==0)
             mes=4;
          if(i.compareTo("MAYO")==0)
             mes=5;
          if(i.compareTo("JUNIO")==0)
             mes=6;
          if(i.compareTo("JULIO")==0)
             mes=7;
          if(i.compareTo("AGOSTO")==0)
             mes=8;
          if(i.compareTo("SETIEMBRE")==0)
             mes=9;
          if(i.compareTo("OCTUBRE")==0)
             mes=10;
          if(i.compareTo("NOVIEMBRE")==0)
             mes=11;
          if(i.compareTo("DICIEMBRE")==0)
             mes=12;
         return mes;

     }
}
